package cn.tedu.oop3;
/**本类用作继承的入门案例*/
public class TestExtends {
    public static void main(String[] args) {
        Animal a = new Animal();
        Cat c = new Cat();
        MiaoMiao mm = new MiaoMiao();
        a.eat();
        c.eat();
        mm.eat();
    }
}
/**1.我们通过extends关键字建立子类与父类的继承关系，格式:子类 extends 父类
 * 2.java的类支持单继承:一个子类只能有一个父类，但一个父类可以有多个子类
 * 3.继承相当于是子类将父类的功能复制了一份
 * 继承还具有传递性，爷爷的功能会传递给爸爸，爸爸的功能会传给孙子*/
class Animal{
    public void eat(){
        System.out.println("小动物Animal吃啥都行~");
    }
}
class Cat extends Animal{
    int a = 10;//普通
    private int b = 100;//私有
}
/**6.继承是一种is a的关系，比如小猫是一只小动物，MiaoMiao是一只小猫
 * 继承要求子类必须是父类的一种下属类型，依赖性非常强，强耦合*/
class MiaoMiao extends Cat{
    /**4.子类可以拥有自己独有的方法，实现了功能的拓展*/
    public void StudyJava(){
        System.out.println("正在学java");
        System.out.println(a);
        /**5.子类继承父类以后，可以使用父类的所有非私有资源
         * 注意:私有资源不可以使用的原因，不是没有继承过来
         * 而是被private修饰，访问受限制*/
//        System.out.println(b);
    }
}
